// components/classic/music/index.js
import { classicBeh } from '../classic-beh.js'
// 拿到音乐管理对象
const mMgr = wx.getBackgroundAudioManager()
Component({
  // 继承公共行为
  behaviors: [classicBeh],
  /**
   * 组件的属性列表
   */
  properties: {
    src: String
  },

  /**
   * 组件的初始数据
   */
  data: {
    playing: false,
    title: '测试',
    pauseSrc: 'images/player@playing.png',
    playSrc: 'images/player@waitting.png'
  },

  attached: function() {
    this._recoverStatus()
    this._monitorSwitch()
  },
  /**
   * 组件的方法列表
   */
  methods: {
    onPlay: function() {
      //  播放图片更换
      if(!this.data.playing) {
        this.setData({
          playing: true
        })
        mMgr.src = this.properties.src
        mMgr.title = this.data.title
      } else {
        this.setData({
          playing: false
        })
        mMgr.pause() // 暂停播放
      }
    },
    // 检测当前期刊是否处于播放状态，控制音乐播放和暂停图标的显示
    _recoverStatus: function() {
      if(mMgr.paused) {
        this.setData({
          playing: false
        })
        return
      }
      if(mMgr.src == this.properties.src) {
        this.setData({
          playing: true
        })
      }
    },
    // 监听音乐总控制器事件，控制页面上播放和暂停图标的显示
    _monitorSwitch: function() {
      mMgr.onPlay(() => { // 播放音乐
        this._recoverStatus()
      })
      mMgr.onPause(() => { // 暂停音乐
        this._recoverStatus()
      })
      mMgr.onStop(() => { // 把总控制器关掉
        this._recoverStatus()
      })
      mMgr.onEnded(() => { // 一首音乐自然播放完成
        this._recoverStatus()
      }) 
    }
  }
})
